介紹過了元素之後,此篇接著來介紹的是「屬性」。
屬性(attributes)最主要的功能是在描述元素的額外資訊,而簡單地使用物件導向程式語言來做類比,元素是 class 的話,那麼屬性就是 class 裡的 attribute / property。
以一本書的資料而言,舉例如下:
可以看出 bookname 和 publishdate 都是描述書的資訊
<Book bookname="誰溫暖了工程師" publishdate="2010-09-09">
</Book>
看到上面這個例子,或許你會質疑,為什麼不寫成下面這種型式
<Book>
<bookname>誰溫暖了工程師</bookname>
<publicshdate>2010-09-09</publishdate>
</Book>
的確如此,在 XML 中可以任意使用元素或屬性來描述所帶的資訊。那麼在什麼情形下使用元素,又在什麼情形下使用屬性呢?
這裡一個簡單的判斷依據,就是用「出現一次或是出現多次」做判斷,如下例:
//bookname, publishdate只出現一次,用屬性或用元素,沒有太大差別
<Book bookname="誰溫暖了工程師" publishdate="2010-09-09"></Book>
<Book>
<bookname>誰溫暖了工程師</bookname>
<publicshdate>2010-09-09</publishdate>
</Book>
//如果出現多次,就只能用元素了,如下例中的 PaymentItem, MOA 和 PaymentDate:
<PaymentInfo>
<PaymentDetail>
<PaymentItem>001</PaymentItem>
<MOA>1000000</MOA>
<PaymentDate>2011-10-10</PaymentDate>
</PaymentDetail>
<PaymentDetail>
<PaymentItem>002</PaymentItem>
<MOA>1200000</MOA>
<PaymentDate>2011-11-10</PaymentDate>
</PaymentDetail>
<PaymentDetail>
<PaymentItem>003</PaymentItem>
<MOA>1400000</MOA>
<PaymentDate>2011-12-10</PaymentDate>
</PaymentDetail>
</PaymentInfo>
有時即使只出現一次,使用元素也會比使用屬性的方式要好,主要原因是在「結構定義的可重用性」,就是類似高階程式裡的「模組化」。請參照先前[XML]18-驗證之 Schema中所提到的列 14 到列 23 的說明。
此外,在使用屬性時要特別注意的,就是「屬性一定要用括號括起來」,如下所示:
//在HTML中,以下兩列都合法
<a href=http://ithelp.ithome.com.tw>iTHelp</a>
<a href="http://ithelp.ithome.com.tw">iTHelp</a>
//但在XML中,一定要加括號如下
<a href="http://ithelp.ithome.com.tw">iTHelp</a>
本系列文章列表
Next : [XML]24-文件之名稱空間
我等全集到時候一起研讀,不然滿頭疼的....看沒有!!
這應該放在您那篇
更應景些
搬過來給糖叔坐